<!DOCTYPE html>
<html lang="en">
<head>
  <title>我的成长之路</title>
  <meta charset="UTF-8">
  <meta name="description" content="ltoddy's blog">
  <meta name="author" content="liutao">
  <meta name="author" content="ltoddy">
  <meta name="author" content="just for fun">

  <link rel="icon" href="../../static/me.jpg">
  <!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
  <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css"
        integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

  <!-- jQuert Microsoft CDN -->
  <script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.3.1.min.js"></script>
  <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
  <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"
          integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
          crossorigin="anonymous"></script>
</head>
<body>
<div class="container">
  <div class="page-header">
    <h3>我的成长之路</h3>
  </div>
  <p>认识我的人(家长除外)都知道,我会的东西不少.这一切都是有代价的.</p>
  <h4>每个语言我是怎么入门的?</h4>
  <p>
    <small>
      网易云课堂为广大学生提供的平台:
      <a href="http://study.163.com/curricula/cs.htm">http://study.163.com/curricula/cs.htm</a>
    </small>
  </p>
  <ul>
    <li>
      <h4>C语言</h4>
      <p>当初在高中的时候,被坑爹的同学介绍了《C primer》这本书,然后用vs去编程,当时很吃力.</p>
      <p>之后我又看了K&R (Brian W. Kernighan /Dennis M. Ritchie)《C语言程序设计》,C语言之父的著作,被誉为C语言中的圣经,
        因为C语言的一个强力武器是指针,接着我又看了《征服C指针》和《深入理解C指针》.</p>
      <p>当然有人会给新人推荐谭浩强的书,我的做法是: <br>
        把谭老师的书丢到废纸篓里是唯一正确的选择。科尼汉的书简洁明晰到了极致。我买了能买到的科尼汉所有的书，从《unix编程环境》到《程序设计实践》，
        没有一本让我失望。伟大的作者，简洁风格的代表，永远的K&R.</p>
      <p>这个寒假打算教我弟弟开始学编程,我会给他带两本书:《深入理解计算机系统》和《C语言程序设计》,然后结合浙大翁恺老师的C语言教学视频.</p>
      <p>对于其他学生想学C入门,我会推荐《C语言程序设计》和前桥和弥的《征服C指针》.以及浙大翁恺老师的C语言教学视频,开发工具请使用Dev c++.</p>
      <p>链接:</p>
      <ul>
        <li>
          <a href="http://mooc.study.163.com/course/cloudclass-1000002011#/info">
            C语言入门:http://mooc.study.163.com/course/cloudclass-1000002011#/info
          </a>
        </li>
        <li>
          <a href="http://mooc.study.163.com/course/cloudclass-1000004000#/info">
            C语言进阶:http://mooc.study.163.com/course/cloudclass-1000004000#/info
          </a>
        </li>
      </ul>
    </li>
    <li>
      <h4>C++</h4>
      <p>这里我不怎么想提C++,因为我不会C++,我入门C++看的是《C++程序设计》,然后又看了C++之父写的那本十周年特别版那本(我记得是C++89规范).</p>
      <p>现在有了C++11、C++14、C++17,对于C++来说,我真得已经看不懂C++了。</p>
    </li>
    <li>
      <h4>Java:</h4>
      <p>Java的入门我是看视频学的,还是浙大翁恺老师的视频.</p>
      <p>然后我看了Sun出版的《Java核心技术》卷一和卷二,又看了《Thinking in Java》.</p>
      <p>然后是Java Web学习Servlet,然后是Spring系列的框架,最后放弃Java转行Python.</p>
      <p>对于Java我真得是不想吐槽了.讨厌Java了.最初学习JavaSE部分的时候,是真心觉得Java好,代码复用真痛快,不过学了JavaEE, Java框架,我只能说呵呵了.</p>
      <p>Java Web 和 Spring系列的框架我是看到别人的blog学的,不过真的没找到什么好书.不然我会选择看书.</p>
      <p>对于Java我的遗憾是《Effective Java》那本书没看.顺便提一句,Java并发方面,不需要买专门的书,《Thinking in Java》里面讲的已经足够好了.</p>
    </li>
    <li>
      <h4>Python</h4>
      <p>对于Python我是想说最多的,入门的时候看的《Python语言程序设计》,作者梁勇.(这是一个最正确的选择)</p>
      <p>Python入门书的话,我只推荐着一本书,其他Python入门的书都是错误的教学,我敢说这话,我不怕别人说我傻逼之类的.</p>
      <p> 廖雪峰的blog的Python学习还是不要看了,他比我有名气,注定没人会支持我.
        为什么我说这个,编程是用来解决问题的,入门要为要围绕着问题求解这个核心来学习.</p>
      <p> 为什么会很多人,学完了Python,可还是不会写代码,因为他们仅仅学习了语法,编程思想却没有学习,没有提高自己用程序去解决问题的能力.
      <p> 这也是为什么有人学了一年Python还是啥都不行.因为你会了语法,你知道这个工具的用法了,那你知道他应该在哪里用,在什么时候用合适?这是市面上的书不会说的.</p>
      <p>还有一个方面,你要预估你的学习成本,你需要高效率的成长.</p>
      <p>当时我在学习《Python语言程序设计》,我书上的代码我跟着敲了一遍,课后练习题(简单的就没做)我做了一遍,花了一个星期的时间,
        那个时候,用Python的能力就已经会很强了.</p>
      <p>其次,还看了什么书:《流畅的Python》,《Python Cookbook》(目前在看,更主要的是当作工具书来用),《Python Flask Web开发》,
        《轻量级Django》,《The Django Book》,《Introduction to Tornado》,《Python 网络数据采集》</p>
      <p>爬虫还是有必要看一看的,毕竟有时候你可能会采集一些数据(前两天帮老师采集数据了……嘻嘻).其他就是在Python官网文档看了一些零散的知识.</p>
      <hr>
      <p>如果你是新人,我的建议是:先看《Python语言程序设计》这本书,一定要坚持,我知道这本书对于大多数人来说可能会太难了.</p>
      <p>我是一名acmer(曾经),书中的一些课后题也是花了我不少时间的,不过一定要坚持下来,付出努力,你所做的会有应得的回报的. </p>
      <p>其次看《流畅的Python》同时学习Python web框架,Django不要作为你第一个框架来学习,它不合适,推荐首先学习Flask框架,
        如果你学习Django的话,Django的官方人员写了《TheDjango Book》这本书,值得一看.</p>
      <p>学习Python的话,开发环境就用Pycharm,其他的就不推荐了,如果你看到网上说用什么sublime + 插件,然后也跟着用sublime之类编辑器去学习
        那么如果你遇到问题(不管什么问题),别来找我.用eclipse+Pydev的话可以来找我.</p>
    </li>
    <li>
      <h4>Scheme</h4>
      <p>这个语言是我花时间最长,却是回报最小的语言.(虽然只有define和lambda这两个东西就可以撑起这个语言,但其实是真的很难)</p>
      <p>我从SICP(《计算机程序的构造和解释》)入坑Scheme,并爱上了这个语言,然后看了r5rs,r6rs文档.</p>
      <p>一句话,屠龙之技其实那么能轻易掌握的,Scheme我会坚持学下去的.《计算机程序的构造和解释》这本书还是很有必要看的.
        计算机中两大圣经之一,CS中最好的教材.Scheme我就不想说太多了,中国(全世界)的社区就不怎么样,也没什么人.</p>
      <p>如果你也像学Lisp,那么就去学Clojure,它运行在jvm之上,可以调用Java,并且有ring这个Web框架.
        Common lisp我就不建议了,特性太多,226有一千多页,还不包括网络编程,系统调用等等很多东西.</p>
    </li>
  </ul>
  <p>说一下我接触过的其他一些语言, io,prolog,Scala,haskell,Ruby,Erlang,kotlin等等,有些想不起来了……
  <p>对于scala我看的是《Scala编程思想》,看完之后感觉Scala特性好多呀,自己难以驾驭,而且在中国也不怎么有起色,所以就没继续学下去.
  </p>学kotlin是也是跟着官方文档做的,单纯只是想看看这个语言是什么样子的,"太甜了". </p>
  <p>学习io是为了看原型语言的特性,所以我在学JavaScript的时候效率特别高.</p>
  <p>erlang的学习是为了学习消息机制以及并行程序.又一次又让我深深的感觉Java把一切搞复杂了.</p>
  <hr>
  <p>你可能会问我我怎么会有这么多的时间呀,我告诉你,我之前的时候,都是每天水各种群,你会看到在各个群都很活跃,最近不怎么水群了.看微信多了……</p>
  <p>实际上,我在水群的同时也是边看书学习的,一边跟人聊天一边学习,两不耽误.</p>
  <p>时间都是你自己挤出来的,每个人每天都是二十四小时,坐地铁的时候可以学习,睡前可以看看blog,什么时候都可以学习.
    只是你自己意识不到让时间悄悄从你身边流过罢了。</p>
  <h3>对于新人我想说,学习一个语言,开发工具一定要选用IDE(集成开发环境),这样你会更高效的学习,你的精力会全在如何编程上.如果有人向你推荐用编辑器,
    sublime,vim之类的,把这种人当傻逼好了.</h3>
  <a href="https://github.com/ltoddy/ltoddy.github.io" target="_blank"><img
      style="position: absolute; top: 0; right: 0; border: 0;"
      src="https://camo.githubusercontent.com/38ef81f8aca64bb9a64448d0d70f1308ef5341ab/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f6461726b626c75655f3132313632312e706e67"
      alt="Fork me on GitHub"
      data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png">
  </a>
</div>
</body>
</html>